
<script setup> 
// 父传子
// defineProps接收数据
let props = defineProps({
  message: Number
})

// 子传父
// 通过defineProps生成emit方法。调用emit方法然后父组件接受。
let emit = defineEmits(['changeF'])

let change = () => {
  console.log(34567)
  emit('changeF', 654321)
}

// 将函数暴露出去。使父组件可以调用。
defineExpose({
  change
})


// 调用inject函数。接受来自上层组件的数据
// 也可接受来自上层组件的函数。达到子组件调用父函数的效果
import { inject } from 'vue';
let data = inject('message')
let changeProvide = inject('changeProvide')

</script>

<template>
  <button @click="change">子修改父数据</button>
  <button @click="changeProvide">子修使用inject改父数据</button>
  {{message}}
  {{data}}

</template>


<style>
</style>